home *** CD-ROM | disk | FTP | other *** search
-
- #include <corlib.h>
- #include <HS_wlib.h>
-
- #define DIALOGSIZEH (40*6)
- #define DIALOGSIZEV (12*4)
- #define FONT 12
- #define FONT2 16
- #define OFX 8
- #define OFY 8
- #define SWITCHX (FONT*OFY+8)
- #define SWITCHW (FONT2*8/2)
- #define SWITCHY (FONT2+10)
-
- static
- DialogExec( wp, info )
- WindowID wp;
- EventInfo *info;
- {
- if( info->option == EventRedraw ){
- DrawBuf dbuf[6];
- DrawSetClear( dbuf, ColorGray );
- DrawSetSymbol( dbuf+1, OFX, OFY, HS_WindowGetClientPointer(wp),
- AttrDefault, FONT );
- DrawSetSymbol( dbuf+2, SWITCHX+FONT2, SWITCHY,
- "Yes No",
- AttrDefault, FONT2 );
- DrawSetLine( dbuf+3, SWITCHX, SWITCHY, SWITCHX+SWITCHW-1,
- SWITCHY+FONT2, ShadowUp, OptionShadow );
- DrawSetLine( dbuf+4, SWITCHX+SWITCHW, SWITCHY,
- SWITCHX+SWITCHW*2-1, SWITCHY+FONT2,
- ShadowUp, OptionShadow );
- DrawSetLine( dbuf+5, 4, 4, DIALOGSIZEH-4, DIALOGSIZEV-4,
- ShadowDown, OptionShadow );
- WindowDraw( wp, dbuf, 6 );
- }
- return TRUE;
- }
-
- DialogYesNo( msg, info )
- char *msg;
- EventInfo *info;
- {
- int x, y;
- unsigned short *sp;
- WindowID wp;
- WindowGetRootScroll( &x, &y );
- sp= WindowGetScreenTable( WindowGetScreenMode() );
- x+= (sp[0]-DIALOGSIZEH)/2;
- y+= (sp[1]-DIALOGSIZEV)/2;
- wp= WindowSimpleOpen( x, y, DIALOGSIZEH, DIALOGSIZEV,
- NULL, DialogExec );
- HS_WindowGetClientPointer( wp )= msg;
- WindowRedraw( wp );
- for(;;){
- WindowID cwp;
- if( WindowGetEventInfo( info ) ){
- if( info->KeyCode == 'y' ){
- WindowClose( wp );
- return TRUE;
- }else if( info->KeyCode == 'n' ){
- WindowClose( wp );
- return FALSE;
- }
- cwp= WindowGetChild( WindowRootID, info );
- if( cwp == wp ){
- if( info->LeftON &&
- info->y >=SWITCHY &&
- info->y < SWITCHY+FONT2 &&
- info->x >=SWITCHX &&
- info->x < SWITCHX+SWITCHW*2 ){
- WindowClose( wp );
- if( info->x < SWITCHX+SWITCHW )
- return TRUE;
- return FALSE;
- }
- }
- }
- }
- }
-
-